package com.husd.framework.util;

/**
 * 改变数组的大小
 *
 * @author hushengdong
 */
public class ArrayUtil {


    /**
     * 改变数组的大小
     *
     * @param oldArray the old array, to be reallocated.
     * @param newSize  the new array size.
     * @return A new array with the same contents.
     */
    private static Object resizeArray(Object oldArray, int newSize) {
        int oldSize = java.lang.reflect.Array.getLength(oldArray);
        Class elementType = oldArray.getClass().getComponentType();
        Object newArray = java.lang.reflect.Array.newInstance(
                elementType, newSize);
        int preserveLength = Math.min(oldSize, newSize);
        if (preserveLength > 0)
            System.arraycopy(oldArray, 0, newArray, 0, preserveLength);
        return newArray;
    }

    // Test routine for resizeArray().
    public static void main(String[] args) {
        int[] a = {1, 2, 3};
        a = (int[]) resizeArray(a, 5);
        a[3] = 4;
        a[4] = 5;
        for (int i = 0; i < a.length; i++)
            System.out.println(a[i]);
    }
}
